#include <iostream>
#include <vector>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>

using namespace std;

void sumRGB(const cv::Mat& src, cv::Mat& dst)
{
    //创建颜色通道向量, 读取的图片是三通道图像,planse.size = 3;
    vector<cv::Mat> planes;
    //将图像分解为单通道
    cv::split(src, planes);

    cv::Mat b = planes[0], g = planes[1], r = planes[2], s;
    cv::addWeighted(r, 1./3., g, 1./3., 0.0, s);
    cv::addWeighted(s, 1., b, 1./3., 0.0, s);

    cv::threshold(s, dst, 100, 100, cv::THRESH_TRUNC);
    //THRESHOLD_TRUNC: DSTi = (SRCi > THRES) ? THRES : SRCi;
    //使其最大值为THRES
}

int main()
{
    cv::Mat src = cv::imread("../../resource/image/lenna-head.jpg");
    cv::Mat dst;
    cv::namedWindow("Threshold", cv::WINDOW_AUTOSIZE);
    sumRGB(src, dst);
    cv::imshow("Threshold", dst);
    cv::waitKey(0);

    return 0;
}
